The present invention relates generally to networks of computer systems, and more specifically, to a method and system of distributed operating system over a network of computer systems.
In its simplest form, computer networking provides a mechanism for sharing files and peripheral devices among several interconnected computers. Ideally, a computer network should allow all computers and applications to have access to all the resources of the network, optimizing the collective resources.
The main responsibility of an operating system (OS) is to manage a computer""s resources. All activities in the computer including scheduling application programs, writing files to disk, and sending data across a network, should function together as seamlessly and transparently as possible.
Some environments call for more rigorous resource management and scheduling than others. Real time applications, for instance, depend on the operating system to handle multiple events within fixed time constraints. The more responsive the OS, the greater flexibility a real time application has to meet its deadlines.
Typically, operating systems on computer networks are provided as multi-layer systems: one layer for the local environment, and a separate layer for the network environment. This results in two different operating systems having to be learned by developers and users. As well, because the interfaces with the local and network layers are significantly different, an application program may be written for one layer or the other, but can not be written to handle both. That is, network versions of application programs may not run on individual computers and stand-alone versions may not run on networks.
Typically, network software is designed to handle client computers and servers as distinctly different machines. If a user wishes to have a central computer provide files to a number of remote computers, then the central computer must be designated as a server, and the remote computers as clients. This generally limits the flexibilty of the network, because server and client computers are given different abilities by the operating system. For example, it is not possible for two computers to share files with one another because one must be designated as the server, and the other the client. Generally the server may not access files stored on the client.
Traditional computer network systems were designed and optimized to handle a narrowly defined set of resources and configurations. For example, the typical mainframe computer system would comprise a mainframe computer with a large memory storage area and set of printers. Smaller terminals or computers would access this mainframe as clients in a manner specific to the network and software. Such computer systems do not have the flexibility to exploit such new communication developments as the internet.
Because of the large software overheads of traditional operating systems, they can not be applied to smaller computer systems such as those found in automobiles or cellular phones.
Therefore, such operating systems are not appropriate for a broad range of applications including multiprocessor systems, palm top or laptop computers which may be integrated with other larger computers, cellular telephones, automobile controllers and smart process control instruments.
There is therefore a need for a method and system of a distributed operating system that addresses the problems outlined above. This design must be provided with consideration for reliability, speed of execution, and the volume of programming code required.
It is therefore an object of the invention to provide an improved distributed network operating system.
One aspect of the invention is broadly defined as a method of implementing a distributed operating system between a local client processor on a local network having a local message passing operating system and a local network manager and a remote server processor on a remote network having a remote message passing operating system and a remote network manager via a communication network interconnecting the local network and the remote network, comprising the steps of: the local message passing operating system responding to a message generated by the local client processor having an off-node destination by creating a connection between the local client processor and the local network manager; the local client processor transmitting the message to the local network manager via the connection; the local network manager transmitting the message and credentials of the local client processor to the remote network manager corresponding to the off-node destination via the communication network; and the remote network manager responding to an off-node message being received by forwarding a virtual message to the remote server.